home *** CD-ROM | disk | FTP | other *** search
/ The Datafile PD-CD 1 Issue 2 / PDCD-1 - Issue 02.iso / _utilities / utilities / 004 / _adhesive / examples / CUser / c / main
Text File  |  1994-09-23  |  1KB  |  65 lines

  1. /* Reverse a string using Adhesive object 2 which in turn uses object 3.
  2.    Note we know nothing about object 3 in this program.
  3. */
  4.  
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include "h.kernel"
  9. #include "h.Adhesive"
  10.  
  11. /* procedure from object 2 to reverse string */
  12. void stringSimpleReverse(char *string);
  13.  
  14. /* external request table */
  15. extern Adhesive_Request cahg_need_ObjectsNeeded;
  16.  
  17. /* our user handle */
  18. Adhesive_User userHandle=NULL;
  19.  
  20. static void checkErr(_kernel_oserror *err)
  21. { /* does nothing if passed a zero pointer
  22.      else displays error and does not return
  23.   */
  24.   if (err) {
  25.     fprintf(stderr,"Error: %x %s\n",err->errnum,err->errmess);
  26.     exit(EXIT_FAILURE);
  27.    }
  28. }
  29.  
  30.  
  31. static void deRegister(void)
  32. {
  33.   checkErr(adhesive_Deregister(&userHandle));
  34. }
  35.  
  36.  
  37. int main()
  38. {
  39.   Adhesive_UserInfo info;
  40.   char buff[256];
  41.  
  42.   info.flags=0;
  43.   info.name="C User";
  44.  
  45.   /* setup atexit handler to ensure we always deregister */
  46.   atexit(deRegister);
  47.  
  48.   /* register with Adhesive */
  49.   checkErr(adhesive_Register(&userHandle,&info));
  50.  
  51.   /* request objects */
  52.   checkErr(adhesive_Request(&userHandle,&cahg_need_ObjectsNeeded));
  53.  
  54.   /* copy string into writeable buffer */
  55.   strcpy(buff,"this is a test");
  56.  
  57.   /* reverse string using requested object */
  58.   printf("Original string: %s\n",buff);
  59.   stringSimpleReverse(buff);
  60.   printf("Reversed string: %s\n",buff);
  61.  
  62.   return EXIT_SUCCESS;
  63. }
  64.  
  65.